23

» WarCraft 3 / Ошибка в способности

Похожие вопросы:

ответ
проверь настройки A01P, возможно, там кривые данные выше 3-го уровня
ответ
Kanteu, у тебя в описаниях стоит код AUdc, тебе нужно его заменить на равкод твоей способности. Чтобы его узнать, выдели способность и нажми Ctrl+D. Перед двоеточием будет равкод способности.
ответ
МодификаторПал я так понимаю число, а не юнит...
local unit u
local real r
Это конкретно по ошибке... а вообще - не надо смотреть видео от этого человека, он тебя плохому научит... правда. А другим потом придётся тебя переучивать, если ты сам это дело не забросишь
ответ
краш пропал сам собой, после смены варика. КАЧАЙТЕ ДЕФОЛТНЫЙ ВАРИК БЕЗ миксов и всякой дряни!

23

» WarCraft 3 / Поворот эффекта

Похожие вопросы:

ответ
Всё, разобрался, вопрос снимаю)
ответ
В модел эдиторе перенеси нужную кость в начало координат и в ключевых фреймах пропиши одинаковые координаты для этой кости. Вот и проверишь.
ответ
Ах, я понял чего ты хочешь конкретно сейчас. Чтобы модель смотрела в камеру, словно на экране выбора персонажа? В таком случае ситуация немного упрощается.
Нам больше не нужно хранить текущую матрицу поворота эффекта, ведь мы не производим ее вращение, вместо этого мы высчитывает всю необходимую ориентацию из положения камеры и самого эффекта. Подход, в целом, остается прежним, но для поиска осей ориентации мы теперь будем использовать некоторый вспомогательный вектор, чье направление совпадает с направлением глобальной оси Z, и путем векторного произведения этого вспомогательного вектора на вектор оси X эффекта (получаемый как и прежде p2 - p1) мы получаем вектор ориентации эффекта Y, а векторное произведение X на Y нам даст ось Z эффекта.
Весь процесс можно разжевать на множество абзацев, но делать этого нет смысла. Я проще скину твою карту с новым вариантом.
Тем не менее, я вижу некоторое непонимание темы и потому считаю должным указать на некоторые ошибки в твоем прошлом коде
Код
    private function RotationMatrixToEuler takes MATRIX3 R returns VECTOR3
    
        local real x
        local real y
        local real z
        local real sy = SquareRoot(R.m11 * R.m11  +  R.m21 * R.m21)
     
        local boolean singular = sy < .000001 or sy == 0 // If
     
        if not singular then
        
            set x = Atan2(R.m32 , R.m33)
            set y = Atan2(-R.m31, sy)
            set z = Atan2(R.m21, R.m11)
        
        else
        
            set x = Atan2(-R.m23, R.m22)
            set y = Atan2(-R.m31, sy)
            set z = 0
            
        endif
        
        return VECTOR3.New_1(x, y, z)
    
    endfunction
Я не понимаю, как работает эта функция. В моем понимании, преобразование матрицы поворота в углы Эйлера происходит за счет обратного преобразования. То есть, чтобы преобразовать матрицу в Эйлер, необходимо знать как преобразуется Эйлер в матрицу, поскольку это обратные друг другу процессы. В новом примере я ее переписал.
Код
        set rotation.m11 = X.x
        set rotation.m12 = X.y
        set rotation.m13 = X.z
        
        set rotation.m21 = Y.x
        set rotation.m22 = Y.y
        set rotation.m23 = Y.z
        
        set rotation.m31 = Z.x
        set rotation.m32 = Z.y
        set rotation.m33 = Z.z
Здесь идет неверное назначение параметров матрицы. Дело в том, что матрица записывается следующим образом (из readme библиотеки Math)
m11 m12 m13
m21 m22 m23
m31 m32 m33
При этом, оси записываются слева направо, столбиками, то есть , ось X здесь, это m11, m21 и m31. Следовательно верной записью будет
Код
        set rotation.m11 = X.x
        set rotation.m21 = X.y
        set rotation.m31 = X.z
        
        set rotation.m12 = Y.x
        set rotation.m22 = Y.y
        set rotation.m32 = Y.z
        
        set rotation.m13 = Z.x
        set rotation.m23 = Z.y
        set rotation.m33 = Z.z
И самая ложная строка
        set rotation = MATRIX3.New_0()
Это создаст нулевую матрицу, то есть матрицу, все значения которой - нули. Базовая же матрица поворота, это единичная матрица, то есть матрица, чья главная диагональ состоит из единиц, а все остальное - нули.
Но это просто заметки, в текущей версии этих участков кода больше нет.
ответ
Посмотри вот тут: xgm.guru/p/clamp/clamp-physics
Решал точно такую-же проблему, успешно
ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

23

» IrInA Host Bot / Патч

Похожие вопросы:

ответ
Патч на большие карты лежит с коннектором
ответ
IrIna Host Bot не осуществляет поддержку по картам. Пишите автору карты
ответ
Ты про game.dll? Его можно скачать, поискав в интернете. Или под этим сообщением.

23

» WarCraft 3 / Фреймы на МемХаке

Похожие вопросы:

ответ
в 1.26 так делал xgm.guru/p/wc3/163817
Ща mix убраны и архитектура wc переделана, но идея таже - внедриться в процесс варкрафта и найти оффсеты функций.

23

» WarCraft 3 / Время каста

Похожие вопросы:

ответ
У морфов есть параметр - неприрываемый это особое состояние юнита, которое нужно чтобы юнит докастовал заклинание в любом случае (если что то метаморфоза это 2 каста скилла, в альтернативную форму и обратно и у обоих есть время каста)
Ну собственно нам нужен скилл на основе морфа демон хантера "Перевоплощение"", начальная и конечная форма - дамми герой, остальные параметры в 0, суем этот скилл в руну а руну вручаем нужному герою и тут же отдаем приказ качтовать что то....
Результат - герой будет кастовать скилл, игнорируя всех и вся, иконки скиллов будут активны, но хоть закликайся.
Выйти из этого состояния можно только одним способом - выполнить любой морф как следует до конка, подходит для этого 'Aave' - Avenger form (морф сфинкса)
ответ
SamuraiKing:
есть вариант попроще - изменить способность звездопада, чтобы звезды падали 1 раз, и за каждый нужный промежуток времени создавать дамми и приказывать кастовать
ответ
call SetCameraFieldForPlayer( GetOwningPlayer(GetEnumUnit()), CAMERA_FIELD_TARGET_DISTANCE, 5000.00, 3.00/*3 - время отдаления */ )
Камеру можно прикрепить к юниту-кастеру. Также можно настроить смещение камеры
local real angle = GetUnitFacing(unit)*bj_DEGTORAD //угол взгляда кастера - угол смещения
local real dist = 300//расстояние, на которое сместится камера.
call SetCameraTargetControllerNoZForPlayer(GetOwningPlayer(unit),unit, dist*Cos(angle), dist*Sin(angle), false)
ответ

Графика - Анимация: обратный ход броска и Графика - Анимация: точка броска - графическте составляющие, анима у юнитов проигрывается, и созданы для задержек. Для невидимого dummy-каста это и не нужно

если вам нужна пустышка, то таких есть есть несколько десятков. Но что вам нужно?
  1. чтобы не останавливался перед кастом, и шел дальше выполнять очередь приказов. но такое исключаем, вам же мгновенная нужна. к сожалению, такие абилки, требуют задержек. у меня есть список, но надо проверить CastTime = 0 будет работать на таких?
  2. а есть такие скилы: кастанул, и юнит применил (стремительность берсерк двойные кнопки щит и прочее) xgm.guru/p/blog-steal-nerves/ability4
  3. мб фреймы? вам же нужна кнопка?

23

» WarCraft 3 / Не могу найти причину

Похожие вопросы:

ответ
Claw, SomeFire, Timoxxx, а теперь фокус
у него были гет локал плеер
я их убрал
но он карту после этого не тестил
говорит потестит после нового года
ответ
Закрываю вопрос
Нашел нормальный блокнот и через него отредактил
ответ
краш пропал сам собой, после смены варика. КАЧАЙТЕ ДЕФОЛТНЫЙ ВАРИК БЕЗ миксов и всякой дряни!

23

» WarCraft 3 / Не запускается карта с мемхаком

Похожие вопросы:

ответ
ничем, кроме названий переменных. попробуй отключить морфинг имен
ответ
Анихак лаунчер заточен под борьбу с картой лича, поэтому не дает запускать все карты с мемхаком, пока есть возможноть это обойти - моя карта яркий пример, а так инфы подробной в паблик никто не сливал чтобы ракап не сделал апгрейд защиты...
ответ
Все функции прелоада замена на рид/врайт мемхака, и в любом случае проверь права администратора для варкрафта, например JNGP точно запущен с правами админа и всё норм, права на запись есть, а если вар запускаешь с обычными, то у него не будет прав для записи, файл прелоада не создасться как и writestring и дальше всё поедет...
MKDimon, Запусти от админа, отпишись

23

» WarCraft 3 / Бафф на 1 секунду

Похожие вопросы:

ответ
вот, смотри триггер cast и способность "Божественный щит" в карте
xgm.guru/p/wc3/179535?postid=336091#comment72 ищи 72 коммент, костыльный
xgm.guru/p/wc3/179535?postid=336719#comment142 ищи 142 коммент, это то что в карте
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
Руками.
ответ
  1. Уже создали, основан на хаке на память, лучше юзайте поиск.
  2. Удаляйте бафф триггерно.

23

» WarCraft 3 / Кампания

Похожие вопросы:

ответ
~8gabriel8:
Приложить файл кампании, чтобы посмотрели. И какая версия игры?
ответ
Тобой был задан аналогичный вопрос 18 июля, и был получен вполне исчерпывающий ответ. Чем мастерская переводов не устроила?
ответ
Была у меня раньше кампания "Legacy of Darkness", только она и так была переведена полностью. Наследие Тьмы. Там ещё забавные титры с падающими овцами и Думгуардами были.
Могу перевести, если потребуется
ответ
Тут 2 варианта:
  • ручками каждый триггер, каждое нестандартное описание из РО (очень тяжелый)
  • Открыть карту w3x MPQ редактором, внутри будет много файлов, в 1 из них будет весь нестандартный текст, загнать содержимой фала в переводчик или перевести вручную, и засунуть обратно в карту, а карту в кампанию

23

» WarCraft 3 / скорость дефолтный абилок

Похожие вопросы:

ответ
да не стакаются
тут посмотри раздел скорости про эту абилу. разбирал и тесты проводил

23

» WarCraft 3 / Кастомный интерфейс

Похожие вопросы:

ответ
Нет. Во вкладке интерфейс вы можете посмотреть все, что можете поменять
ответ
как заставить игру в него вставить модель выбранного юнита
Посмотри в ресурсах у Hate "Пак анимированных фреймов-спрайтов выделения", там пример работы с фрймом Sprite, который отображает модели.
Drulia_san:
Или фрейм надо называть так же, чтоб он типа переезжал собой оригинал
Еще не пробовал.
Drulia_san:
В каких единицах вообще измеряется высота и ширина, судя по всему в попугаях а не пикселях
Не в пикселях. Здесь хорошо показана координатная система интерфейса. В твоем распоряжении координаты от [0, 0] до [0.8, 0.6]. Можно пытаться выходит за пределы этих значений, но отображаться фреймы тогда могут криво.
Исключением из этой системы координат являются стандартные фреймы выходящие за приделы показанного в статье квадрата - мультиборд, иконки героев, фрейм игрового мира, портрет юнита. В их случае упомянутые выше координаты будут соответствовать всему игровому окну, а не только указанному квадрату.
надо ли писать у элемента INHERITS чего-то там
Один фрейм может наследовать параметры другого. В этом случае пишется слово INHERITS и следом имя наследуемого фрейма. При этом вложенные фреймы не наследуются. Чтобы наследовались вложенные фремы тоже, нужно между INHERITS и именем наследуемого фрейма вставить ключевое слово WITHCHILDREN.
Drulia_san:
что такое UseActiveContext
Указывает потомку (вложенному фрейму) использовать контекст родителя (объемлющего фрейма). То бишь, id привязанный к экземпляру фрейма во время игры. Например у панели ресурсов (золото/дерево/еда) 24 контекста, на каждого игрока.
SetAllPoints и прочее, какие поинтс, куда их сет, зачем
Точки крепления. У каждого фрейма есть 9 точек крепления
TOPLEFT
TOP
TOPRIGHT
LEFT
CENTER
RIGHT
BOTTOMLEFT
BOTTOM
BOTTOMRIGHT
Фрейм перемещается по экрану с использованием одной и этих точек. Например
SetPoint BOTTOMLEFT, "MyFrame", TOPLEFT, 0.001, 0.001,
Привязывает левый-нижний угол фрейма MyFrame к левому-верхнему углу родительского фрейма, со смещением 0.001, 0.001.
SetAllPoints просто привязывает все точки крепления потомка ко всем точкам крепления родителя.
Drulia_san:
с этим даже экспериментировать болезненно и проблемно
Не бесполезно и не проблемно. Каталог игры содержит файлы шаблонов
ui\framedef\ui\infopaneltemplates.fdf
ui\framedef\ui\escmenutemplates.fdf
ui\framedef\glue\battlenettemplates.fdf
для изучения и использования.
ответ
Берешь оригинальные, по пути UI/Glues/Console и по ним создаешь свои.
ответ
Только редачить положение стандартных, чтобы создавать свои элементы нужен либо клиент Renderedge либо у ребят приближенных к Личу (Караулов и Анрайз), по факту есть библиотека dll позволяющая отрисовывать фреймы. но её в живую так и не видел. Это глубокие дебри чтобы туда влазить.
Ещё есть DGUI - прим. ScorpioT1000

23

» WarCraft 3 / Таверна героев

Похожие вопросы:

ответ
Отключай триггер вначале или в конце
Или там есть такая ерунда как owner of ....Переменная типа твой герой. То есть относимая к игроку- владельцу этого героя
ответ
БезликийСектант:
Wadimiru:
Ельнур,
У него три триггера - по одному для каждого игрока.
Если в каждом одна и та же область, что наиболее вероятно - то и происходит описанное в его проблеме.
Я и так и так делал, все равно все умирают((
Поэтому нужно отсеивать. Это сразу для всех, не нужно делать для каждого игрока.
ответ

там нужно триггерно добавить в начале, а после удалить триггерно. главная особенность в том, что в таверне в ро никаких юнитов в таверне не должно быть указано. Иначе не работает абилка продажа войск, такая механика

еще можно вот такой вариант
ответ
Qulore, добавить условие, что входят - герой. И владелец этого входящего юнита - красный итд. для каждого триггера изменяй в условии игрока.

23

» WarCraft 3 / Нестандартные способности

Похожие вопросы:

ответ
Они будут сами применять способности, но изучать их придется триггерно. Главное, чтобы стояло Игрок - Компьютер у этого игрока, т.к. игрока без контроллера придется только триггерно направлять.
ответ
Приказать использовать способность, на основе которой сделана нестандартная.
ответ
Ты и не найдешь ее в этом акшене, ибо там только стандартные способности.
Можно заставить через кастом скрипт. На примере нестандартной способности, созданной из "Удар Грома":
call IssueImmediateOrderBJ(твой юнит, "thunderclap")
Если для способности-пустышки-друга-спеллмейкеров "Канал", то вместо thunderclap пиши ID, который ты задал Каналу в менеджере объектов. Причем ID там может быть любой, хоть sleep.
ответ
Зайди в редактор объектов -> способности -> файл -> экспортировать способности.
Ты сохранишь файл, в котором хранятся способности. Такой же файл есть и в карте.
ответ
~8gabriel8:
Это много раз обсуждалось. Какой-то глюк редактора. Попробуй удалить способность, перезагрузиться и создать её заново.
У бота 4 вариант об этом, кстати.
Да ты повторяешься xgm.guru/p/wc3/226412/comments?postid=420138#comment27
Помню ведь, что недавно это уже обсуждали.

23

» WarCraft 3 / скрытые модели 1.26

Похожие вопросы:

ответ
в доте фрог решил просто превращением тини в модеьл с деревом, возможно нормального решения просто нет

23

» WarCraft 3 / Чёрная маска

Похожие вопросы:

ответ
Для того чтобы не было косяков с таймингом, я отказался от "затемнение-ввод" и использую затемнение и ввод отдельно. Тогда дерганий не заметно.
Ближе к теме: единственное что можно сделать это посмотреть начинку ф-ии и выдрать оттуда то, что конкретно вам нужно. Тогда работать будет быстрее и более точно. Кроме того, нужно отказаться от wait'ов, т. к. они не точно определяют время.
ответ
Самое удивительное: если карта "открыта" - всё работает, чёрная маска создаётся. Если же "разведана" - нет...
Как мне удалось наконец-то выяснить:
  • Если выставлен флаг "карта открыта" - просто запрещаются туман войны и чёрная маска. И чтобы вернуть всё на место, нужно разрешить их, а потом создать модификатор чёрной маски.
  • Если выставлен флаг "карта разведана" - ничего не запрещается, но создается модификатор тумана войны на всю карту. И его просто не может перекрыть новый модификатор чёрной маски, который я создаю триггерно. Нужно как-то отловить этот первоначальный модификатор тумана войны - и удалить его. Обращение через "последний созданный модификатор" не помогает. Может быть, есть еще какие-то способы найти и удалить этот модификатор?
ответ
bifurcated, у тебя ошибка, ты создал модификатор для группы игроков, а записал в перменную только для одного.
ответ
~8gabriel8:
Это странно, может область нужно создать во всю карту и её в модификаторе видимости указать? Но сначала попробуй где-то в свойствах карты убрать галочку Скрытые области частично видимы.
ответ
Cкрыть области частично видимые, если на русском, галку офф

23

» WarCraft 3 / Привязка камеры

Похожие вопросы:

ответ
Reach, каким образом делается перевоплощение в твоей карте?
Через способность, улучшение или триггерно заменой одного юнита на другой?
Мне кажется, должно сработать через Casting unit.
Я делал через способность.
Сначала нужно создать переменную типа Боевая единица.
Потом установить ей значение - тот юнит, который будет перевоплощаться.
Привязать камеру к юниту (то есть уже к переменной).
Когда юнит применяет способность, поменять значение переменной на Casting unit.
Прикрепить обратно камеру к переменной-юниту.
Обозначения на скрине:
Unit [10] - это тот самый юнит
Способность Смена оружия - сделана на основе способности друида ночных эльфов с флагом "Непрерываемый" для того, чтобы можно было перевоплощаться обратно и не терять при этом предметы.

23

» Администрация XGM / мой профиль

Похожие вопросы:

ответ
Это просто иконка, отражающая твои действия на сайте/форуме, не более того.
ответ
пофикшу к восьмой версии
ответ
Это не баг. Аккаунта "Lelik" больше не существует. Удалён за нарушения.
ответ
ответ

23

» WarCraft 3 / не станит дамми

Похожие вопросы:

ответ
EnergyFrost, дамик надо создавать для 15 игрока
ответ
при создании предмета в какой-то точке на карте ты создаешь его с помощью координат
присвой переменной Point рандомную позицию на карте, после создавай там предмет и дамми\видимость\чупакабру
как только предмет взяли - удаляем дамми и точку из памяти
профит
ответ
еще раз - нет! дефольтные способности вы не отследите, только полностью триггерный аналог, баши и криты сделанные триггерно лежать вот тут
Простенько, на jass но для начала сойдет.
ответ
В редакторе скелета
ответ
0.02 секунды вейт слишком короткий, каст ножа не успевает произойти - даммик удаляется раньше.

23

» WarCraft 3 / атака молнией

Похожие вопросы:

ответ
koloff:
Объявляются переменные в начале.
local lightning l
call AddLightningEx(codeName, true, GetLocationX(where1), GetLocationY(where1), GetLocationZ(where1), GetLocationX(where2), GetLocationY(where2), GetLocationZ(where2))
set l = bj_lastCreatedLightning
ответ
Ничего нельзя, сфера не предназначена для чаннелинг абилок, делайте полностью триггерный вариант.
ответ
Посмотри на анимацию атаки у орка космодесантника и отпадут вопросы.
У вертолета тип оружия стоит "Мгновенное"
ответ
если так то срабатывает сразу, ток событие specific unit event лол

23

» WarCraft 3 / Не работает загрузочный экран

Похожие вопросы:

ответ
Она должна быть в корневой папке варкрафта, лично у меня так. Попробуй переместить если она отдельно. Или скачай заново, может какойнибудь файл пропал, всякое бывает, вирусы там и тд
ответ
Переустановил игру, теперь, кажется, всё впорядке. Не знаю из-за чего там были такие баги :I
ответ
Первое: тебе нужен сам файл загрузочного экрана (я его скину под комментом).
Второе: тебе нужна сама картинка. Желательно 1024х728. Необходимо разрезать её на четыре части. Лично я делил так:
  • Верхняя левая часть: 512х256 пикселей (переименуй в LoadingScreenTL.tga)
  • Верхняя правая часть соотетсна тож 512х256 пикселей (переисенуй в LoadingScreenTR.tga)
  • Нижняя левая часть 512х256 (ну или как там получится) - переименуй в LoadingScreenBL
  • Нижнюю правую часть отмерь так же и назови LoadingScreenBR
Далее надо импортировать LoadingScreen.mdx и все файлы загрузочного экрана (то есть части картинки) непосредсна в саму карту и указать путь. Разрезать картинку можно легко с помощью проги InfanView. Удачи!
ответ
vLAd333, с помощью сайта конвертировал в какой формат?
посмотрел карту
блин я же просил проверить пути к текстурам
мало того что везде war3mapImported которого быть не должно
так ещё и модель требует разрезать картинку на 4 части
короче читаем статьи про создание лоадскринов и импорт файлов в карту